﻿using SqlSugar;
using System;
using System.IO;

namespace WinFormsApp1
{
    public class SqlSugarHelper
    {
        // 获取当前应用程序基目录
        public static string dbPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "..\\..\\..\\..\\AppData");

        // 使用单例模式
        public static SqlSugarScope Db = new SqlSugarScope(
            new ConnectionConfig
            {
                ConnectionString = $"datasource={Path.Combine(dbPath, "demo.db")}", // 连接字符串
                DbType = DbType.Sqlite, // 数据库类型
                IsAutoCloseConnection = true // 设置为true以自动关闭连接
            },
            db =>
            {
                // (A)全局生效配置点，一般AOP和程序启动的配置放在这里，所有上下文生效
                // 调试SQL事件，实际部署时可以注释掉
                db.Aop.OnLogExecuting = (sql, pars) =>
                {
                    // 获取原生SQL推荐（建议使用），性能较好
                    Console.WriteLine(UtilMethods.GetNativeSql(sql, pars));

                    // 获取无参数化SQL，对性能有一定影响，特别是对于大SQL和参数多的情况，仅供调试使用
                    // Console.WriteLine(UtilMethods.GetSqlString(DbType.SqlServer, sql, pars));
                };
            });
    }
}
